// 商品路由模块

// 加载模块
const express = require('express')
const goodsModel = require('../db/goodsModel.js')
const path = require('path')

// 创建路由表（空表）
const router = express.Router()

// 向路由表添加内容：

// 上传文件接口：
// 使用multer插件接收文件
// 安装：npm i multer
// multer版本："multer": "^1.4.5-lts.1"
// 加载模块
const multer = require('multer')

// 创建一个上传文件的对象upload
const upload = multer({
    limits: {
        // 限制上传文件最大为：500kb
        fileSize: 1024 *500
    },
    fileFilter: function (req,file,cb){
        // 只接收图片文件（png jpg jpeg gif svg）
        let reg = /\.(png|jpe?g|gif|svg)$/
        if (reg.test(file.originalname)) {
            // 上传文件是图片，接收文件
            cb(null,true)
        } else {
            // 上传文件不是图片，拒收文件
            cb(null,false)
        }
    },
    storage: multer.diskStorage({
        destination: function (req,file,cb){
            // 设置上传文件的存储目录
            cb(null,'./www/uploads')
        },
        filename: function (req,file,cb){
            // 设置上传文件的名称和后缀
            let filen = 'upload_'+Date.now()+'_'+parseInt(Math.random()*1000000)+path.extname(file.originalname)
            cb(null,filen)
        }
    })
})
let fun = upload.single('upload_img')// 接收单个文件
/**
* @api {post} /goods/upload 上传单个文件
* @apiGroup goods
*
* @apiParam {String} name 上传文件的名称为upload_img
*
* @apiSuccessExample 返回数据示例:
* {
*     "code": 1,
*     "msg": "上传成功",
*     "imgurl": "图片地址",
* }
*/
router.post('/upload',(req,res)=>{
    fun(req,res,(err)=>{
        // 接收文件完成时执行
        if (err) {
            // 上传文件大小超过限制了
            return res.send({"code":-1,"msg":"上传文件最大为500kb"})
        }
        // 当上传文件被拒收时，req.file 没有值 -> undefined
        if (!req.file) {
            // 上传文件被拒收了
            return res.send({"code":-2,"msg":"亲，只能上传图片文件"})
        }
        // 文件上传成功
        let imgurl = 'http://localhost:8080/static/uploads/'+ req.file.filename
        res.send({"code":1,"msg":"图片上传成功","imgurl":imgurl})
    })// 异步接收文件
})


// 创建一个上传文件的对象upload
const uploads = multer({
    limits: {
        // 限制上传文件最大为：500kb
        fileSize: 1024 *500
    },
    fileFilter: function (req,file,cb){
        // 只接收图片文件（png jpg jpeg gif svg）
        // let reg = /\.(png|jpg|jpeg|gif|svg)$/
        let reg = /\.(png|jpe?g|gif|svg)$/
        if (reg.test(file.originalname)) {
            // 上传文件是图片，接收文件
            cb(null,true)
        } else {
            // 上传文件不是图片，拒收文件
            cb(null,false)
        }
    },
    storage: multer.diskStorage({
        destination: function (req,file,cb){
            // 设置上传文件的存储目录
            cb(null,'./www/uploads')
        },
        filename: function (req,file,cb){
            // 设置上传文件的名称和后缀
            let filen = 'upload_'+Date.now()+'_'+parseInt(Math.random()*1000000)+path.extname(file.originalname)
            cb(null,filen)
        }
    })
})
let funs = uploads.array('upload_img')// 接收多个文件
/**
* @api {post} /goods/uploads 上传多个文件
* @apiGroup goods
*
* @apiParam {String} name 上传文件的名称为upload_img
*
* @apiSuccessExample 返回数据示例:
* {
*     "code": 1,
*     "msg": "上传成功",
*     "imgurls": ['url1','url2'],
* }
*/
router.post('/uploads',(req,res)=>{
    funs(req,res,(err)=>{
        // 接收文件完成时执行
        if (err) {
            // 上传文件大小超过限制了
            return res.send({"code":-1,"msg":"上传文件最大为500kb"})
        }
        // console.log( req.files )// [{req.file},{req.file},{req.file}]
        if (req.files.length === 0) {
            // 上传文件被拒收了
            return res.send({"code":-2,"msg":"亲，只能上传图片文件"})
        }
        // 文件上传成功
        let imgurls = []
        req.files.forEach((item)=>{
            let imgurl = 'http://localhost:8080/static/uploads/'+ item.filename
            imgurls.push(imgurl)
        })
        res.send({"code":1,"msg":"图片上传成功","imgurls":imgurls})
    })// 异步接收文件
})


// 添加商品接口：http://localhost:8080/goods/add
router.post('/add',(req,res)=>{
    // 响应前端
    res.send({"code":1,"msg":"添加成功"})
})

// 删除商品接口：http://localhost:8080/goods/del
router.post('/del',(req,res)=>{
    // 响应前端
    res.send({"code":1,"msg":"删除成功"})
})

// 修改商品接口：http://localhost:8080/goods/update
router.post('/update',(req,res)=>{
    // 响应前端
    res.send({"code":1,"msg":"修改成功"})
})

// 查询商品接口：http://localhost:8080/goods/search
router.post('/search',(req,res)=>{
    // 响应前端
    res.send({"code":1,"msg":"查询成功"})
})

// 导出路由表
module.exports = router
